1. Technical Field
This application generally relates to command processing, and more particularly to techniques used for command processing with multiple command syntaxes.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more servers or host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
A host system including a host processor may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data in the device. In order to facilitate sharing of the data on the device, additional software on the data storage systems may also be used.
In connection with management of a data storage system, commands may be issued using client software. The client software may be installed and executed on a host system which communicates with one or more data storage systems to issue commands to the one or more data storage systems. The commands may be entered via the client software using a command line interface (CLI). The commands may be, for example, to perform data configuration operations, obtain information regarding the status or current configuration, and the like. The client software may be used in connection with issuing commands to different data storage systems each having a different command line syntax or a different version of a supported command line syntax. In one model, the client software may be characterized as a thick client which has knowledge about the different syntaxes used on the various data storage systems with which the client may communicate. Implementations using a thick client may have the client software, rather than the data storage system, parse the commands and detect any syntax errors with the commands. The code and logic for parsing the different syntaxes may be hardcoded or encoded in the client software. One drawback with such a thick client is that a new version of the client software may be downloaded and installed with each update to a supported command syntax. In accordance with a second model, the client software may be characterized as a thin client having no knowledge about the different syntaxes. Implementations using a thin client have command line parsing performed on the data storage system rather than the system on which the client resides. Implementations using a thin client initially install a version of the client. The thin client provides an advantage of not having to update the client software with each change to the one or more command syntaxes. However, parsing is performed on the data storage system so that additional data storage system resources are utilized. Furthermore, in the event of a command error, the data storage system detects the command error and communicates this error to the client software resulting in additional data storage system network traffic.
Thus, it may be desirable to utilize a technique which supports multiple command line syntaxes, and/or versions thereof, and efficiently uses resources of the client, data storage system, and/or network.